package br.org.acessobrasil.portal.persistencia;

import java.util.List;

import br.org.acessobrasil.portal.modelo.Menu;
import br.org.acessobrasil.portal.modelo.Sitio;
/**
 * Dao do menu, sem interface pois ocorre algum erro no spring
 * @author Fabio Issamu Oshiro
 *
 */
public class MenuDaoSpring extends SuperDao<Menu>{

	@Override
	public Menu select(Long id) {
		return getEntityManager().find(Menu.class,id);
	}
	@Deprecated
	@SuppressWarnings("unchecked")
	public List<Menu> list() {
		return getEntityManager().createQuery("Select m from Menu m order by m.no_menu").getResultList();
	}
	
	@SuppressWarnings("unchecked")
	public List<Menu> list(Sitio sitio) {
		return getEntityManager().createQuery("Select m from Menu m where m.sitio = ? order by m.no_menu").setParameter(1, sitio).getResultList();
	}
	
	@Override
	public void delete(Long id) throws Exception {
		Menu menu = select(id);
		if(menu==null) throw new Exception("Menu id="+id +" n&atilde;o encontrado.");
				
		//verificar se o sitio 
		//esta apontando para este como menu principal
		Sitio sitio = menu.getSitio();
		if(sitio.getMenuPrincipal()!=null && sitio.getMenuPrincipal().getNuMenu().equals(id)){
			sitio.setNuMenuPrincipal(null);
			sitio.setMenuPrincipal(null);
		}
		getEntityManager().remove(menu);
	}
}
